package com.angular.useradmin.user.common.utils;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;

import java.util.List;
import java.util.stream.Collectors;

/**
 * 分页工具类
 * @author ZSL
 */
public class PageUtil {
    private PageUtil(){}
    /**
     * 分页
     * @param list  结果列表
     * @param current  当前页
     * @param limit  分页大小
     * @param <T>  泛型
     * @return
     */
    public static <T> Page<T> layPage(List<T> list, Integer current, Integer limit) {
        Page<T> page = new Page<>();
        page.setTotal(list.size());
        page.setPages(current);
        page.setSize(limit);
        list = list.stream().skip((long) (current - 1) * limit).limit(limit).collect(Collectors.toList());
        page.setRecords(list);
        return page;
    }

    /**
     * 获取page对象
     * @param current  当前页
     * @param limit  分页大小
     * @param total  总条数
     * @param <T>  泛型
     * @return
     */
    public static <T> Page<T> getPage(Integer current, Integer limit, Integer total) {
        Page<T> page = new Page<>();
        page.setTotal(total);
        page.setPages(current);
        page.setSize(limit);
        return page;
    }
}
